package com.zoweunion.mechanic.dao.shangji;

import com.zoweunion.mechanic.sqlprovider.ShangJiSqlProvider;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Component
public interface ShangJiDao {

	@InsertProvider(type=ShangJiSqlProvider.class,method="publish")
	int publish(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getShopList")
	List<Map<String, Object>> getShopList(Map<String, Object> map);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getShopListCount")
	int getShopListCount(Map<String, Object> map);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getSortShopList")
	List<Map<String, Object>> getSortShopList(Map<String, Object> map);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getShopInfo")
	Map<String, Object> getShopInfo(Map<String, Object> map);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="updateShopBrowse")
	int updateShopBrowse(Map<String, Object> map);

	@UpdateProvider(type=ShangJiSqlProvider.class, method="updateShopExamineFlag")
	int updateShopExamineFlag(Map<String, Object> map);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getzhongbiaoList")
	List<Map<String, Object>> getzhongbiaoList(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getzhongbiaoInfo")
	Map<String, Object> getzhongbiaoInfo(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getzhongbiaoInfoNew")
	List<Map<String, Object>> getzhongbiaoInfoNew(Map<String, Object> map);

	@InsertProvider(type=ShangJiSqlProvider.class,method="publishCars")
	int publishCars(Map<String, Object> reqMap);
	
	@InsertProvider(type=ShangJiSqlProvider.class,method="publishBuyerInfo")
	int publishBuyerInfo(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getpublishCarsList")
	List<Map<String, Object>> getpublishCarsList(Map<String, Object> reqMap);
	
	@InsertProvider(type=ShangJiSqlProvider.class,method="publishJoberInfo")
	int publishJoberInfo(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class, method="updateJoberExamineFlag")
	int updateJoberExamineFlag(Map<String, Object> map);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getpublishBuyerInfoList")
	List<Map<String, Object>> getpublishBuyerInfoList(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getJoberInfoList")
	List<Map<String, Object>> getJoberInfoList(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getJoberInfoCount")
	int getJoberInfoCount(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getJoberInfo")
	Map<String, Object> getJoberInfo(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="updateJoberBrowse")
	int updateJoberBrowse(Map<String, Object> reqMap);

	@InsertProvider(type=ShangJiSqlProvider.class,method="publishRecruitInfo")
	int publishRecruitInfo(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class, method="updateRecruitExamineFlag")
	int updateRecruitExamineFlag(Map<String, Object> map);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getRecruitInfoList")
	List<Map<String, Object>> getRecruitInfoList(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getRecruitInfoCount")
	int getRecruitInfoCount(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getRecruitInfo")
	Map<String, Object> getRecruitInfo(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="updateRecruitBrowse")
	int updateRecruitBrowse(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getCarTypeM")
	List<Map<String, Object>> getCarTypeM(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getCarTypeS")
	List<Map<String, Object>> getCarTypeS(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getCarBrand")
	List<Map<String, Object>> getCarBrand(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getCarModel")
	List<Map<String, Object>> getCarModel(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getCarInfo")
	List<Map<String, Object>> getCarInfo(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getMould")
	List<Map<String, Object>> getMould(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getPublicCarInfo")
	List<Map<String, Object>> getPublicCarInfo(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getPublicCarInfoTotal")
	Integer getPublicCarInfoTotal(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getPublicCarDetail")
	Map<String, Object> getPublicCarDetail(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="updateBuyInfoBrowse")
	int updateBuyInfoBrowse(Map<String, Object> reqMap);

	@InsertProvider(type=ShangJiSqlProvider.class,method="addPublicCarDetail")
	int addPublicCarDetail(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class, method="updateCarDetailExamineFlag")
	int updateCarDetailExamineFlag(Map<String, Object> map);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getPublicCarInfoByLatlong")
	List<Map<String, Object>> getPublicCarInfoByLatlong(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getProvinceByNumber")
	List<Map<String, Object>> getProvinceByNumber(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getCityByNumber")
	List<Map<String, Object>> getCityByNumber(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getAreaByNumber")
	List<Map<String, Object>> getAreaByNumber(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getMallList")
	List<Map<String, Object>> getMallList(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getMallListSize")
	Integer getMallListSize(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getNewsList")
	List<Map<String, Object>> getNewsList(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getNewsListCount")
	int getNewsListCount(Map<String, Object> reqMap);
	
	@SelectProvider(type=ShangJiSqlProvider.class,method="getNewsDetail")
	Map<String, Object> getNewsDetail(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="updateBrowseForHotNews")
	int updateBrowseForHotNews(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getModelBySubTypeId")
	List<Map<String, Object>> getModelBySubTypeId(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getBrandByTypeId")
	List<Map<String, Object>> getBrandByTypeId(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getBigAttributeByTypeId")
	Map<String, Object> getBigAttributeByTypeId(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getSubAttribute")
	List<Map<String, Object>> getSubAttribute(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getHotBrand")
	List<Map<String, Object>> getHotBrand();

	@SelectProvider(type=ShangJiSqlProvider.class,method="getHotMechanicsType")
	List<Map<String, Object>> getHotMechanicsType();

	@SelectProvider(type=ShangJiSqlProvider.class,method="getBigMechanicsType")
	List<Map<String, Object>> getBigMechanicsType();

	@SelectProvider(type=ShangJiSqlProvider.class,method="getSubMechanicsType")
	List<Map<String, Object>> getSubMechanicsType(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getMechanicsType")
	List<Map<String, Object>> getMechanicsType(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getMechanics")
	List<Map<String, Object>> getMechanics(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getCountMechanics")
	Integer getCountMechanics(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getInquiryInfo")
	List<Map<String, Object>> getInquiryInfo(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getInquiryInfoCount")
	Integer getInquiryInfoCount(Map<String, Object> reqMap);

	@InsertProvider(type=ShangJiSqlProvider.class,method="insertInquiry")
	int insertInquiry(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="updateInquiryInfoCount")
	int updateInquiryInfoCount(Map<String, Object> reqMap);

	@InsertProvider(type=ShangJiSqlProvider.class,method="insertMyCollection")
	int insertMyCollection(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="deleteMyCollection")
	int deleteMyCollection(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="myCollectionSearch")
	List<Map<String, Object>> myCollectionSearch(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getMyCollection")
	List<Map<String, Object>> getMyCollection(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getTypeMyCollection")
	List<Map<String, Object>> getTypeMyCollection(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getMyCollectionCount")
	Integer getMyCollectionCount(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="collectionMap")
	Map<String, Object> collectionMap(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getNewMachineList")
	List<Map<String, Object>> getNewMachineList(Map<String, Object> reqMap);

	@SelectProvider(type=ShangJiSqlProvider.class,method="getNewMachineDetail")
	Map<String, Object> getNewMachineDetail(Map<String, Object> reqMap);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="updateNewMachineBrowser")
	void updateNewMachineBrowser(Map<String, Object> buyInfo);

	@UpdateProvider(type=ShangJiSqlProvider.class,method="updateZoweBuyinfoDetailForPushFlag")
	void updateZoweBuyinfoDetailForPushFlag(Map<String, Object> paraMap);
}
